home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / assembly / abakus.lha / Abakus / I / Tools1.m < prev    next >
Text File  |  1995-07-26  |  16KB  |  891 lines

  1. CMDreset  equ  1
  2. CMDread   equ  2
  3. CMDwrite  equ  3
  4. CMDclear  equ  4
  5. CMDstop   equ  5
  6. CMDstart  equ  6
  7. CMDflush  equ  8
  8. CMDquery  equ  9
  9. CMDbreak  equ  10
  10. CMDset    equ  11
  11.  
  12.  
  13. oldfile             equ       1005
  14. newfile             equ       1006
  15. readwrite           equ       1004
  16.  
  17. raw       macro
  18.     bsr  _s_raw
  19.     ifnd  gos_s_raw
  20. gos_s_raw
  21.     endc
  22.     endm
  23.  
  24. con     macro
  25.     bsr  _s_con
  26.     ifnd  gos_s_con
  27. gos_s_con
  28.     endc
  29.     endm
  30.  
  31. Reads    MACRO
  32.     move.l  \1,d2
  33.     move.l  \2,d3
  34.     bsr  _s_reads
  35.     ifnd  gos_s_reads
  36. gos_s_reads
  37.     endc
  38.     ENDM
  39.  
  40. ReadsChar    MACRO
  41.     move.l  \1,d2
  42.     bsr  _s_read1
  43.     ifnd  gos_s_read1
  44. gos_s_read1
  45.     endc
  46.     ENDM
  47.  
  48. waits  macro
  49.     bsr  _s_waits
  50.     ifnd  gos_s_waits
  51. gos_s_waits
  52.     endc
  53.     tst.l  d0
  54.     beq  \1
  55.     endm
  56.  
  57. randomize_timer   macro
  58.     ifnd  gos_randtime
  59. gos_randtime
  60.     endc
  61.     bsr  ctime
  62.     move.l  xds_tick,d0
  63.     bsr  RandomSeed
  64.     endm
  65.  
  66. rnd  macro         ;rnd [min,]max[,var][,step]
  67.     ifeq  NARG-1    ;rnd max
  68.     move.l  \1,d0    ;rnd max,var
  69.     bsr  Random    ;rnd min,max,var
  70.     endc      ;rnd min,max,var,step
  71.     ifeq  NARG-2
  72.     move.l  \1,d0
  73.     bsr  Random
  74.     move.l  d0,\2
  75.     endc
  76.     ifeq  NARG-3
  77.     move.l  \1,d2
  78.     move.l  \2,d0
  79.     sub.l  d2,d0
  80.     bsr  Random
  81.     add.l  d2,d0
  82.     move.l  d0,\3
  83.     endc
  84.     ifeq  NARG-4
  85.     move.l  \2,d0
  86.     move.l  \1,d2
  87.     sub  d2,d0
  88.     divu  \4,d0
  89.     bsr  Random
  90.     mulu  \4,d0
  91.     add.l  d2,d0
  92.     move.l  d0,\3
  93.     endc
  94.     ifnd  gos_s_rnd
  95. gos_s_rnd
  96.     endc
  97.     endm
  98.  
  99. numb0   macro
  100.     move.l  \1,a5
  101.     bsr  _s_numb0
  102.     IFND  x_go_numb02
  103. x_go_numb02
  104.     ENDC
  105.     IFEQ  NARG-2
  106.     move.l  d3,\2
  107.     ENDC
  108.     endm
  109.  
  110. writes   macro
  111.     ifeq  NARG-2
  112.     move.l  \1,d2
  113.     Move.l  \2,d3
  114.     endc
  115.     ifeq  NARG-1
  116.     numb0  \1
  117.     move.l  \1,d2
  118.     endc
  119.     bsr  s_writes0
  120.     IFND  go_s_writes0
  121. go_s_writes0
  122.     ENDC
  123.     endm
  124.  
  125. writes0   macro
  126.     numb0  \1
  127.     move.l  \1,d2
  128.     bsr  s_writes0
  129.     IFND  go_s_writes0
  130. go_s_writes0
  131.     ENDC
  132.     endm
  133.  
  134. write0   macro
  135.     IFND  go_s_write0
  136. go_s_write0
  137.     ENDC
  138.     numb0  \2
  139.     move.l  \2,d2
  140.     move.l  \1,d1
  141.     bsr  s_write0
  142.     endm
  143.  
  144. Instring  macro
  145.     move.l  \1,a0
  146.     move.l  \2,a1
  147.     moveq.l  #0,d0
  148.     bsr  st_cmp
  149.     IFEQ  NARG-3
  150.     move.l  d0,\3
  151.     ENDC
  152.     IFND  gos_st_cmp
  153. gos_st_cmp
  154.     ENDC
  155.     endm
  156.  
  157. str      macro
  158.     moveq.l  #0,d2
  159.     move  \0,\1,d2
  160.     move.l  \2,a0
  161.     bsr  _s_longzustring
  162.     IFEQ  NARG-3
  163.     move.b  d0,\3
  164.     ENDC
  165.     ifnd  gos_longzustring
  166. gos_longzustring
  167.     ENDC
  168.     endm
  169.  
  170.  
  171.  
  172. val macro
  173.     move.l  \1,d1
  174.     bsr  str_tl
  175.     move  \0,d1,\2
  176.     ifnd  _gos_s_str_tl
  177. _gos_s_str_tl
  178.     endc
  179.     endm
  180.  
  181. time      macro
  182.     bsr  ctime
  183.     ifnd  gos_randtime
  184. gos_randtime
  185.     endc
  186.     endm
  187.  
  188. fillstring         macro
  189.     move.l  \1,a1
  190.     move.b  \2,d1
  191.     move.l  \3-1,d0
  192.     ifeq  NARG-2
  193.     move.l  #32000,d0
  194.     endc
  195.     bsr  _fillString
  196.     ifnd  gos_FillString
  197. gos_FillString
  198.     endc
  199.     endm
  200.  
  201. nullstring          macro    ;nullstring String,Anzahl
  202.     move.l  \1,a1
  203.     move.l  \2-1,d0
  204.     bsr  _nullString
  205.     ifnd  gos_NullString
  206. gos_NullString
  207.     endc
  208.     endm
  209.  
  210. getstring        macro         ;getstring ziel,quell,anz,pos
  211.     ifeq  NARG-2
  212.     movea.l  \1,a1
  213.     moveq.l  #0,d0
  214.     move.b  #\2-1,d0
  215.     endc
  216.     ifeq  NARG-3
  217.     movea.l  \1,a1
  218.     movea.l  \2,a0
  219.     moveq.l  #0,d0
  220.     move.b  #\3-1,d0
  221.     endc
  222.     ifeq  NARG-4
  223.     movea.l  \1,a1
  224.     movea.l  \2,a0
  225.     moveq.l  #0,d0
  226.     move.b  \3-1,d0
  227.     lea  \4-1(a0),a0    ;#########
  228.     endc
  229.     bsr  s_vtov
  230.     ifnd  gos_vtov
  231. gos_vtov
  232.     endc
  233.     endm
  234.  
  235. chain                macro
  236.     movea.l  \1,a0
  237.     movea.l  \2,a1
  238.     movea.l  \3,a2
  239.     moveq.l  #0,d0
  240.     move.b  \4-1,d0
  241.     bsr  s_2in1o
  242.     ifnd  gos_2in1o
  243. gos_2in1o
  244.     endc
  245.     endm
  246.  
  247.  
  248. comp                macro
  249.     movea.l  \1,a0
  250.     movea.l  \2,a1
  251.     ifeq  NARG-3
  252.     move.b  \3-1,d0
  253.     endc
  254.     ifeq  NARG-2
  255.     move.b  #255,d0
  256.     ENDC
  257.     bsr  s_cmp0
  258.     ifnd  gos_cmp0
  259. gos_cmp0
  260.     endc
  261.     endm
  262.  
  263.  
  264. getword             macro       ;getword ausPuff,inPuff[,ab Pos]  -> pos in d0
  265.     movea.l  \1,a5
  266.     movea.l  \2,a3
  267.     moveq.l  #0,d0
  268.     ifeq  NARG-3
  269.     move.l  \3,d0
  270.     sub.l  #1,d0
  271.     add.l  d0,a5
  272.     endc
  273.     bsr  s_getstring
  274.     ifnd  go_getstring2
  275. go_getstring2
  276.     endc
  277.     endm
  278.  
  279.  
  280.  
  281. hex       macro
  282.     move.l  \1,d2
  283.     move.l  \2,a0
  284.     bsr  sx_hex
  285.     ifnd  gos_hex
  286. gos_hex
  287.     endc
  288.     endm
  289.  
  290. copyvor      macro        copyvor Puffer,abPOS,Anzahl,GesPuffln,-POS ..ohne minus Zeichen
  291.     move.l  \1,a0    ;Pufferadr
  292.     move.l  \2-1,d0    ;Ab Pos
  293.     move.l  \3-1,d1    ;Anzahl Zeichen
  294.     move.l  \4,d2    ;Puffer Länge  des gesammten Puffers
  295.     move.l  \5,d3    ;wieviel Zeichen vorher
  296.     bsr  s_copyvor
  297.     ifnd  gos_s_copyvor
  298. gos_s_copyvor
  299.     endc
  300.     endm
  301.  
  302.  
  303. copynach      macro       copynach Puffer,abPOS,Anzahl,GesPuffln,+POS ..ohne plusZeichen
  304.     move.l  \1,a0    ;Pufferadr
  305.     move.l  \2-1,d0    ;Ab Pos
  306.     move.l  \3-1,d1    ;Anzahl Zeichen
  307.     move.l  \4,d2    ;Puffer Länge   des gesammten Puffers
  308.     move.l  \5,d3    ;wieviel Zeichen nacher
  309.     bsr  s_copynach
  310.     ifnd  gos_s_copynach
  311. gos_s_copynach
  312.     endc
  313.     endm
  314.  
  315. inserts    macro         ;insert puffer,pos,Zeichen,Pufflen
  316.     move.l  \1,a0    ;Pufferadr
  317.     moveq.l  #0,d0
  318.     move  \0,\2,d0    ;in Pos
  319.     subq.l  #1,d0
  320.     moveq.l  #0,d1
  321.     move.b  \3,d1    ;Zeichen
  322.     move.l  \4,d2    ;Puffer Länge  des gesammten Puffers
  323.     bsr  s_insert_z
  324.     ifnd  gos_s_insert_z
  325. gos_s_insert_z
  326.     endc
  327.     endm
  328.  
  329. mem        MACRO
  330.     move.l  4,a6
  331.     move.l  \1,d0    ;angeforderte Menge in Byte
  332.     move.l  #$10001,d1    ;Speichertyp
  333.     jsr  -684(a6)    ;Funktion AllocMem()
  334.     ifeq  NARG-2
  335.     move.l  d0,\2    ;Puffername
  336.     endc
  337.     endm
  338.  
  339.  
  340. free       MACRO
  341.     move.l  4,a6
  342.     move.l  \1,a1    ;Zeiger auf Speicherbereich
  343.     jsr  -690(a6)    ;Funktion FreeMem()
  344.     ENDM
  345.  
  346. DelIO     macro
  347.     movea.l  4,a6
  348.     movea.l  \1,a0
  349.     jsr  -660(a6)
  350.     movea.l  \2,a0
  351.     jsr  -672(a6)
  352.     endm
  353.  
  354.  
  355. TimeIO    macro
  356.     bra.s  _FC_timeo\@
  357.     ifnd  _TimeReq
  358.     cnop  0,4
  359. _TimeReq  ds.l 1
  360. _TimePort ds.l 1
  361. _FC_timername  dc.b "timer.device",0
  362.     even
  363.     endc
  364. _FC_timeo\@
  365.     movea.l  4,a6
  366.     jsr  -666(a6)    ;TimeIO
  367.     move.l  d0,_TimePort    ;Port
  368.     move.l  d0,a0
  369.     clr.b  8(a0)
  370.     move.l  #40,d0
  371.     movea.l  4,a6
  372.     jsr  -654(a6)
  373.     move.l  d0,_TimeReq    ;IOReq
  374.  
  375.     endm
  376.  
  377. OpenTimer macro  ;OpenTimer Unit,sec,mic      Unit: Vblank=1,Cia=0
  378.     TimeIO
  379.     lea  _FC_timername,a0
  380.     move.l  #\1,d0
  381.     moveq.l  #0,d1
  382.     movea.l  4,a6
  383.     jsr  -444(a6)
  384.  
  385.     endm
  386.  
  387. CloseTimer  macro
  388.     movea.l  4,a6
  389.     movea.l  _TimeReq,a1
  390.     jsr  -450(a6)
  391.     DelIO  _TimeReq,_TimePort
  392.     endm
  393.  
  394. SetTimer   macro                      ;SendTime sec,mic
  395.     bsr  _s_settimer
  396.     move.l  \1,32(a1)    ;secs
  397.     move.l  \2,36(a1)    ;micros
  398.     bsr  _s_settimer2
  399.     ifnd  _s_gosettimer
  400. _s_gosettimer
  401.     endc
  402.     endm
  403.  
  404.  
  405.  
  406. MakeIO    macro                    ;bis SetParams  sie OpenSer macro
  407.     bra  _FC_sero\@
  408.     ifnd  _SerWriteReq\1
  409.     cnop  0,4
  410. _SerWriteReq\1  ds.l 1
  411. _SerReadReq\1   ds.l 1
  412. _SerWritePort\1 ds.l 1
  413. _SerReadPort\1  ds.l 1
  414.     endc
  415. _FC_sero\@
  416.     movea.l  4,a6
  417.     jsr  -666(a6)    ;MakeIO Nr,MsgPort,IOReq,Length
  418.     ;tst.l d0
  419.     ;beq  _SER_aus
  420.     move.l  d0,\2    ;Port
  421.     move.l  d0,a0
  422.     clr.b  8(a0)
  423.     move.l  \4,d0
  424.     movea.l  4,a6
  425.     jsr  -654(a6)
  426.     move.l  d0,\3    ;IOReq
  427.     ;tst.l d0
  428.     ;beq  _Del_MsgPort
  429.     endm
  430.  
  431. OpenSerDev  macro         ;OpenSerDev DevName,Unit,IOReq
  432.     move.l  \3,a1
  433.     move.l  #19200,60(a1)    ;baud
  434.     move.b  #8,76(a1)    ;Bits 7 o 8
  435.     move.b  #8,77(a1)
  436.     move.b  #180,79(a1)    ;serFlags
  437.     move.b  #1,78(a1)    ;stop
  438.     move.l  #32768,52(a1)    ;Bufflen
  439.     move.l  #250000,64(a1)    ;BreakTimee
  440.     movea.l  \1,a0
  441.     move.l  \2,d0
  442.     moveq.l  #0,d1
  443.     movea.l  4,a6
  444.     jsr  -444(a6)
  445.     endm
  446.  
  447. SetSerParams   macro
  448.  
  449.     move.l  \1,A1    ;IOReq
  450.     move.l  #0,40(A1)
  451.     move.l  #0,36(A1)
  452.  
  453.     IFC  '\2','Baud'
  454.     move.l  \3,60(A1)    ;baud
  455.     ENDC
  456.     IFC  '\4','Baud'
  457.     move.l  \5,60(A1)    ;baud
  458.     ENDC
  459.     IFC  '\6','Baud'
  460.     move.l  \7,60(A1)    ;baud
  461.     ENDC
  462.     IFC  '\8','Baud'
  463.     move.l  \9,60(A1)    ;baud
  464.     ENDC
  465.     IFC  '\10','Baud''
  466.     move.l  \11,60(A1)   ;baud
  467.     ENDC
  468.     IFC '\12','Baud'
  469.     move.l  \13,60(A1)   ;baud
  470.     ENDC
  471.     IFC '\14','Baud'
  472.     move.l  \15,60(A1)   ;baud
  473.     ENDC
  474.  
  475.     IFC '\2','Bits'
  476.     move.b  \3,76(A1)   ;Bits
  477.     move.b  \3,77(A1)   ;Bits
  478.     ENDC
  479.     IFC '\4','Bits'
  480.     move.b  \5,76(A1)   ;Bits
  481.     move.b  \5,77(A1)   ;Bits
  482.     ENDC
  483.     IFC '\6','Bits'
  484.     move.b  \7,76(A1)   ;Bits
  485.     move.b  \7,77(A1)   ;Bits
  486.     ENDC
  487.     IFC '\8','Bits'
  488.     move.b  \9,76(A1)   ;Bits
  489.     move.b  \9,77(A1)   ;Bits
  490.     ENDC
  491.     IFC '\10','Bits'
  492.     move.b  \11,76(A1)   ;Bits
  493.     move.b  \11,77(A1)   ;Bits
  494.     ENDC
  495.     IFC '\12','Bits'
  496.     move.b  \13,76(A1)   ;Bits
  497.     move.b  \13,77(A1)   ;Bits
  498.     ENDC
  499.     IFC '\14','Bits'
  500.     move.b  \15,76(A1)   ;Bits
  501.     move.b  \15,77(A1)   ;Bits
  502.     ENDC
  503.  
  504.     IFC '\2','Flags'
  505.     move.b  \3,79(A1)   ;Flags
  506.     ENDC
  507.     IFC '\4','Flags'
  508.     move.b  \5,79(A1)   ;Flags
  509.     ENDC
  510.     IFC '\6','Flags'
  511.     move.b  \7,79(A1)   ;Flags
  512.     ENDC
  513.     IFC '\8','Flags'
  514.     move.b  \9,79(A1)   ;Flags
  515.     ENDC
  516.     IFC '\10','Flags'
  517.     move.b  \11,79(A1)   ;Flags
  518.     ENDC
  519.     IFC '\12','Flags'
  520.     move.b  \13,79(A1)   ;Flags
  521.     ENDC
  522.     IFC '\14','Flags'
  523.     move.b  \15,79(A1)   ;Flags
  524.     ENDC
  525.  
  526.     IFC '\2','Stop'
  527.     move.b  \3,79(A1)   ;Stop
  528.     ENDC
  529.     IFC '\4','Stop'
  530.     move.b  \5,79(A1)   ;Stop
  531.     ENDC
  532.     IFC '\6','Stop'
  533.     move.b  \7,79(A1)   ;Stop
  534.     ENDC
  535.     IFC '\8','Stop'
  536.     move.b  \9,79(A1)   ;Stop
  537.     ENDC
  538.     IFC '\10','Stop'
  539.     move.b  \11,79(A1)   ;Stop
  540.     ENDC
  541.     IFC '\12','Stop'
  542.     move.b  \13,79(A1)   ;Stop
  543.     ENDC
  544.     IFC '\14','Stop'
  545.     move.b  \15,79(A1)   ;Stop
  546.     ENDC
  547.  
  548.     IFC '\2','Buffer'
  549.     move.l  \3,52(A1)   ;Buffer
  550.     ENDC
  551.     IFC '\4','Buffer'
  552.     move.l  \5,52(A1)   ;Buffer
  553.     ENDC
  554.     IFC '\6','Buffer'
  555.     move.l  \7,52(A1)   ;Buffer
  556.     ENDC
  557.     IFC '\8','Buffer'
  558.     move.l  \9,52(A1)   ;Buffer
  559.     ENDC
  560.     IFC '\10','Buffer'
  561.     move.l  \11,52(A1)   ;Buffer
  562.     ENDC
  563.     IFC '\12','Buffer'
  564.     move.l  \13,52(A1)   ;Buffer
  565.     ENDC
  566.     IFC '\14','Buffer'
  567.     move.l  \15,52(A1)   ;Buffer
  568.     ENDC
  569.  
  570.  
  571.     IFC '\2','Break'
  572.     move.l  \3,64(A1)   ;Break
  573.     ENDC
  574.     IFC '\4','Break'
  575.     move.l  \5,64(A1)   ;Break
  576.     ENDC
  577.     IFC '\6','Break'
  578.     move.l  \7,64(A1)   ;Break
  579.     ENDC
  580.     IFC '\8','Break'
  581.     move.l  \9,64(A1)   ;Break
  582.     ENDC
  583.     IFC '\10','Break'
  584.     move.l  \11,64(A1)   ;Break
  585.     ENDC
  586.     IFC '\12','Break'
  587.     move.l  \13,64(A1)   ;Break
  588.     ENDC
  589.     IFC '\14','Break'
  590.     move.l  \15,64(A1)   ;Break
  591.     ENDC
  592.  
  593.  
  594.     move.w  #CMDset,28(A1)
  595.     movea.l 4,a6
  596.     jsr   -456(a6)
  597.     endm
  598.  
  599.  
  600. CloseSer  macro             ; CloseSer  Nummer
  601.     movea.l 4,a6
  602.     movea.l _SerWriteReq\1,a1
  603.     jsr -450(a6)
  604.     DelIO _SerReadReq\1,_SerReadPort\1
  605.     DelIO _SerWriteReq\1,_SerWritePort\1
  606.     endm
  607.  
  608. OpenSer   macro  ;OpenSer Nr,Name,Unit,[Baud,#19200,Bits,#8,Flags,#180,Stop,#1,Buffer,#32000,Break,
  609.  
  610.  
  611.  
  612.     MakeIO \1,_SerWritePort\1,_SerWriteReq\1,#82  ,#82
  613.     MakeIO \1,_SerReadPort\1,_SerReadReq\1,#82  82
  614.     OpenSerDev \2,\3,_SerWriteReq\1
  615.     move.l  _SerWriteReq\1,a0
  616.     move.l  _SerReadReq\1,a1
  617.     move.l  20(a0),20(a1)
  618.     move.l  24(a0),24(a1)
  619.     ifeq NARG-5
  620.     SetSerParams _SerWriteReq\1,\4,\5
  621.     SetSerParams _SerReadReq\1,\4,\5
  622.     endc
  623.     ifeq NARG-7
  624.     SetSerParams _SerWriteReq\1,\4,\5,\6,\7
  625.     SetSerParams _SerReadReq\1,\4,\5,\6,\7
  626.     endc
  627.     ifeq NARG-9
  628.     SetSerParams _SerWriteReq\1,\4,\5,\6,\7,\8,\9  \8,\9
  629.     SetSerParams _SerReadReq\1,\4,\5,\6,\7,\8,\9  8,\9
  630.     endc
  631.     ifeq NARG-11
  632.     SetSerParams _SerWriteReq\1,\4,\5,\6,\7,\8,\9,\10,\11  \8,\9,\10,\11
  633.     SetSerParams _SerReadReq\1,\4,\5,\6,\7,\8,\9,\10,\11  8,\9,\10,\11
  634.     endc
  635.     ifeq NARG-13
  636.     SetSerParams _SerWriteReq\1,\4,\5,\6,\7,\8,\9,\10,\11,\12,\13  \8,\9,\10,\11,\12,\13
  637.     SetSerParams _SerReadReq\1,\4,\5,\6,\7,\8,\9,\10,\11,\12,\13  8,\9,\10,\11,\12,\13
  638.     endc
  639.     ifeq NARG-15
  640.     SetSerParams _SerWriteReq\1,\4,\5,\6,\7,\8,\9,\10,\11,\12,\13,\14,\15  \8,\9,\10,\11,\12,\13,\14,\15
  641.     SetSerParams _SerReadReq\1,\4,\5,\6,\7,\8,\9,\10,\11,\12,\13,\14,\15  8,\9,\10,\11,\12,\13,\14,\15
  642.     endc
  643.  
  644.     endm
  645.  
  646. WriteSer   macro                   ;writeser Nr #Buff,#len
  647.     move.l  _SerWriteReq\1,a1
  648.     move.l  \2,40(a1)
  649.     move.l  \3,36(a1)
  650.     move.w  #CMDwrite,28(a1)
  651.     movea.l 4,a6
  652.     jsr -456(a6)
  653.     endm
  654.  
  655.  
  656. readser   macro                    ;readser Nr #Buff,#len
  657.     move.l  _SerReadReq\1,a1
  658.     move.l  \2,40(a1)
  659.     move.l  \3,36(a1)
  660.     move.w  #CMDread,28(a1)
  661.     movea.l 4,a6
  662.     jsr -456(a6)
  663.     endm
  664.  
  665. putser   macro
  666.     move.l  _SerWriteReq\1,a1      ;putser Nr #Buff,#len  r #Buff,#len
  667.     move.l  \2,40(a1)
  668.     move.l  \3,36(a1)
  669.     move.w  #CMDwrite,28(a1)
  670.     movea.l 4,a6
  671.     jsr -462(a6)
  672.     endm
  673.  
  674. getser   macro                      ;getser Nr #Buff,#len
  675.     move.l  _SerReadReq\1,a1
  676.     move.l  \2,40(a1)
  677.     move.l  \3,36(a1)
  678.     move.w  #CMDread,28(a1)
  679.     movea.l 4,a6
  680.     jsr -462(a6)
  681.     endm
  682.  
  683. NoCarrier   macro         ;CheckCD AusLabel ... wenn kein Carrier dann goto Label
  684.     move.l  _SerReadReq\1,a1
  685.     bsr  ser_getStatus
  686.     btst.b  #5,80(a1)
  687.     beq  CCDaus\@
  688.     bra \1
  689. CCDaus\@
  690.     endm
  691.  
  692.  
  693. CheckReadBuff  macro
  694.     move.l  _SerReadReq\1,a1
  695.     bsr  ser_getStatus
  696.     IFEQ NARG-2
  697.     move.l 32(a1),\2
  698.     ENDC
  699.     endm
  700.  
  701. CheckWriteBuff  macro
  702.     move.l  _SerWriteReq\1,a1
  703.     bsr  ser_getStatus
  704.     move.l 32(a1),d0
  705.     endm
  706.  
  707.  
  708.  
  709.  
  710. ser_read_doio  macro
  711.     movea.l _SerReadReq\1,a1
  712.     movea.l 4,a6
  713.     jsr -456(a6)
  714.     endm
  715.  
  716. ser_write_doio  macro
  717.     movea.l _SerWriteReq\1,a1
  718.     movea.l 4,a6
  719.     jsr -456(a6)
  720.     endm
  721.  
  722.  
  723. ser_read_sendio  macro
  724.     movea.l _SerReadReq\1,a1
  725.     movea.l 4,a6
  726.     jsr -462(a6)
  727.     endm
  728.  
  729. ser_write_sendio  macro
  730.     movea.l _SerWriteReq\1,a1
  731.     movea.l 4,a6
  732.     jsr -462(a6)
  733.     endm
  734.  
  735. ser_read_checkio  macro
  736.     movea.l _SerReadReq\1,a1
  737.     movea.l 4,a6
  738.     jsr -468(a6)
  739.     endm
  740.  
  741. ser_write_checkio  macro
  742.     movea.l _SerWriteReq\1,a1
  743.     movea.l 4,a6
  744.     jsr -468(a6)
  745.     endm
  746.  
  747. ser_read_waitio  macro
  748.     movea.l _SerReadReq\1,a1
  749.     movea.l 4,a6
  750.     jsr -474(a6)
  751.     endm
  752.  
  753. ser_write_waitio  macro
  754.     movea.l _SerWriteReq\1,a1
  755.     movea.l 4,a6
  756.     jsr -474(a6)
  757.     endm
  758.  
  759. ser_read_abortio  macro
  760.     movea.l _SerReadReq\1,a1
  761.     movea.l 4,a6
  762.     jsr -480(a6)
  763.     endm
  764.  
  765. ser_write_abortio  macro
  766.     movea.l _SerWriteReq\1,a1
  767.     movea.l 4,a6
  768.     jsr -480(a6)
  769.     endm
  770.  
  771.  
  772. SetSer   macro    ;SetSer Nr,Buffer,Länge
  773.     movea.l _SerReadPort\1,a0
  774.     bsr _FC_setser1
  775.     movea.l _SerReadReq\1,a1
  776.     move.l  \2,40(a1)
  777.     move.l  \3,36(a1)
  778.  
  779.     bsr _FC_setser2
  780.     ifnd _s_setser
  781. _s_setser
  782.     endc
  783.     endm
  784.  
  785.  
  786. Set_C     macro
  787.     ifnd _s_goset_c
  788. _s_goset_c
  789.     endc
  790.     endm
  791.  
  792. TaskWait  macro
  793.     movea.l 4,a6
  794.     moveq.l #0,d0
  795.     IFC "\1","C"
  796.     or.l _Sig_C,d0
  797.     endc
  798.     IFC "\2","C"
  799.     or.l _Sig_C,d0
  800.     endc
  801.     IFC "\3","C"
  802.     or.l _Sig_C,d0
  803.     endc
  804.     IFC "\4","C"
  805.     or.l _Sig_C,d0
  806.     endc
  807.     IFC "\5","C"
  808.     or.l _Sig_C,d0
  809.     endc
  810.     IFC "\6","C"
  811.     or.l _Sig_C,d0
  812.     endc
  813.     IFC "\7","C"
  814.     or.l _Sig_C,d0
  815.     endc
  816.     IFC "\8","C"
  817.     or.l _Sig_C,d0
  818.     endc
  819.     IFC "\9","C"
  820.     or.l _Sig_C,d0
  821.     endc
  822.     IFC "\10","C"
  823.     or.l _Sig_C,d0
  824.     endc
  825.  
  826.     IFC "\1","Time"
  827.     or.l _Sig_Time,d0
  828.     endc
  829.     IFC "\2","Time"
  830.     or.l _Sig_Time,d0
  831.     endc
  832.     IFC "\3","Time"
  833.     or.l _Sig_Time,d0
  834.     endc
  835.     IFC "\4","Time"
  836.     or.l _Sig_Time,d0
  837.     endc
  838.     IFC "\5","Time"
  839.     or.l _Sig_Time,d0
  840.     endc
  841.     IFC "\6","Time"
  842.     or.l _Sig_Time,d0
  843.     endc
  844.     IFC "\7","Time"
  845.     or.l _Sig_Time,d0
  846.     endc
  847.     IFC "\8","Time"
  848.     or.l _Sig_Time,d0
  849.     endc
  850.     IFC "\9","Time"
  851.     or.l _Sig_Time,d0
  852.     endc
  853.     IFC "\10","Time"
  854.     or.l _Sig_Time,d0
  855.     endc
  856.  
  857.     IFC "\1","Ser"
  858.     or.l _Sig_Ser,d0
  859.     endc
  860.     IFC "\2","Ser"
  861.     or.l _Sig_Ser,d0
  862.     endc
  863.     IFC "\3","Ser"
  864.     or.l _Sig_Ser,d0
  865.     endc
  866.     IFC "\4","Ser"
  867.     or.l _Sig_Ser,d0
  868.     endc
  869.     IFC "\5","Ser"
  870.     or.l _Sig_Ser,d0
  871.     endc
  872.     IFC "\6","Ser"
  873.     or.l _Sig_Ser,d0
  874.     endc
  875.     IFC "\7","Ser"
  876.     or.l _Sig_Ser,d0
  877.     endc
  878.     IFC "\8","Ser"
  879.     or.l _Sig_Ser,d0
  880.     endc
  881.     IFC "\9","Ser"
  882.     or.l _Sig_Ser,d0
  883.     endc
  884.     IFC "\10","Ser"
  885.     or.l _Sig_Ser,d0
  886.     endc
  887.  
  888.     jsr -318(a6)
  889.     endm
  890.  
  891.